<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
    <script>
        // 面向过程编程：分析出解决问题的步骤 用函数一步一步的执行调用
        // 把大象如何放到冰箱
        // 1.打开冰箱门
        // 2.把大象放进去
        // 3.关上冰箱门

        // 面向对象：把事务分解成一个一个的对象，然后由对象来分工合作
        // 1.大象对象
        // 进去
        // 2.冰箱对象
        // 打开
        // 关闭
        // 3.使用大象和冰箱的功能
        // 分工明确，代码灵活，随时切换

        // 面向对象的特点
        // 封装、
        // 继承、
        // 多态

        // 高聚合、低耦合
        // 字面量创建方式
        let obj = {
            name:'大象',
            goto:function(){
                console.log(this.name,'进去');
                
            }
        }

        console.log(obj);
        obj.goto()

        // 对象的创建 构造函数

        function Animal(name) {
            this.name = name
            this.goto = function(){
                console.log(this.name,'进去');
                
            }
        }
        
        let obj2 = new Animal('大象')

        console.log(obj2);
        obj2.goto()

        let obj3 = new Animal('卡皮巴拉')
        console.log(obj3);
        obj3.goto()
        
        

    </script>
</body>
</html>